# 编译器
CXX = g++

# 编译选项
CXXFLAGS = -std=c++17 -Wall -Wextra -pthread

# 目标文件夹
BUILD_DIR = build
SRC_DIR = src

# 源文件
SRCS = $(wildcard $(SRC_DIR)/*.cpp)

# 目标文件
OBJS = $(patsubst $(SRC_DIR)/%.cpp, $(BUILD_DIR)/%.o, $(SRCS))

# 可执行文件
TARGET = rice_card_system

# 默认目标
all: $(TARGET)

# 链接目标
$(TARGET): $(OBJS)
	$(CXX) $(CXXFLAGS) -o $@ $^

# 编译目标文件
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp
	@mkdir -p $(BUILD_DIR)
	$(CXX) $(CXXFLAGS) -c $< -o $@

# 清理
clean:
	rm -rf $(BUILD_DIR) $(TARGET)

# 伪目标
.PHONY: all clean